// miniprogram/pages/search/index.js
import Toast from '../../miniprogram_npm/@vant/weapp/toast/toast';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    hot_list: [],
    show_hot_area: false,
    show_empty: false,
    input_value: '',
    search_result: [],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.cloud.callFunction({ name: 'fetchHotSearch' })
      .then(res => {
        const hot_list = res.result || [];
        this.setData({ hot_list, show_hot_area: hot_list.length > 0 });
      })
      .catch(err => {
        console.error(err);
      });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 搜索框输入内容
   * @param {*} res 
   */
  onSearchInputAction: function (res) {
    const { value } = res.detail;
    const show_hot_area = value.length <= 0;
    this.setData({
      input_value: value,
      show_hot_area,
      search_result: [],
    });
  },

  /**
   * 点击完成按钮时触发
   * @param {*} res 
   */
  onConfirmAction: function (res) {
    const { value } = res.detail;
    this.startSearchAction(value);
  },

  /**
   * 开始搜索
   * @param {*} res 
   */
  onSearchAction: function (res) {
    const { input_value } = this.data;
    this.startSearchAction(input_value);
  },

  /**
   * 查询
   * @param {*} keyword keyword
   */
  startSearchAction: function (keyword) {
    if (!keyword) return;
    Toast.loading({ message: '查询中', forbidClick: true });
    wx.cloud.callFunction({ name: 'searchAction', data: { keyword: keyword } })
    .then(res => {
      const list = res.result || [];
      this.setData({ search_result: list, show_empty: list.length <= 0 });
      Toast.clear();
    })
    .catch(err => {
      console.error(err);
      Toast.clear();
    });
  },

  /**
   * 点击热门搜索 tag
   * @param {*} res 
   */
  onTagTapAction: function (res) {
    const { name } = res.target.dataset;
    this.setData({ input_value: name, show_hot_area: false }, () => {
      this.startSearchAction(name);
    });
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    const title = '日常生活垃圾怎么分类？快来查一查';
    const path = '/pages/home/index';
    return { title, path };
  }
})